概要
ScenarioModは多くのたくさんのソースファイルが付いていますが、
理解すべき対象は非常に絞られています。
しかも幸いなことに、理解対象はすべて「日本語による関数や変数」なのです。
ScenarioModの理解・編集の区分け
普段からプログラムに書き慣れていない人は、
ScenarioModのソースを見ると、圧倒されてしまうと思います。
ScenarioModではこれらを可能な限り緩和するべく、理解対象の処は、可能な限り「日本語」を多く使ってプログラムを記載しています。
また、ソースを以下のような趣旨にハッキリと区分しています。
に分かれています。
早速、ソリューションエキスプローラで確認してみましょう。
まず、ソリューションエキスプローラーのツリー状の「+」「-」部分をあちこちクリックして、
以下のような「表示状態」にしてみましょう。
上図の
そうです。
実は「自分で編集すべきもの」はたったの2つしかないのです。
しかもこの2つは「2つで1組の」セットですから、
言い換えれば、編集対象は「青い枠内」の1セットだけと言えます。
編集対象「カスタム駆動関数.cpp」
各々を理解するまえに、軽く「『自分で編集すべきもの』を見てみることにしましょう。
-
On_噴出メッセージ直前
「カスタム駆動関数.cpp」の中身を見ると、以下のようになっています。
他にもいろいろと記載されていますが、まずは以下のような記述の部分を焦点としましょう。
string カスタム::On_噴出メッセージ直前(string 武将名, string 元メッセージ, メッセージ関連情報型 メッセージ関連情報) {
if (武将名 == "真田幸隆") {
return "マジかよ…最悪だぉ!!";
}
// 変更しない場合""
return "";
}
細かなところの意味は不明でしょうが、どうやら
「噴出しメッセージの直前」に「武将が『真田幸隆』」ならば、「マジかよ…最悪だぉ!!」にしているということ。
詳細は不明としても、とにかく
『真田幸隆』ならば「マジかよ…最悪だぉ!!」なんだということがわかります。
-
On_プレイヤ担当ターン《メイン画面》
少し他のところに自分で入力してみるとしましょう。
今回は「On_プレイヤ担当ターン《メイン画面》」の関数に5行ほど足しこんで以下のように記述してみましょう。
この段階ではハッキリと意味を理解する必要はありません。
void カスタム::On_プレイヤ担当ターン《メイン画面》() {
フェイドアウト();
カメラ移動(3);
フェイドイン();
効果音再生(効果音音源::豊作);
確認ダイアログ表示("これはプロトタイプだよ!!");
}
「プレイヤのターンがメイン画面でまわってきた時」、「フェイドアウト~カメラ移動(3とは何だ?)~フェイドイン」⇒「効果音の『豊作』が鳴って」⇒「『これはプロトタイプだよ!!』というダイアログが出る」
日本語なので、なんとなくわかります。
「カメラ移動」の「3」というのは何でしょうか。
「カメラ移動」にマウスを当ててみましょう。
すると、バルーンヘルプ表示が出るはずです。
どうやら、「3」というのは城番号か何かのようです。「3番=どこの城」なのか? は今の段階ではさておき、「3番の城にカメラ移動」するのでしょう。
動作確認
さて、(ScenarioMod.dllをちゃんと天翔記フォルダーにコピーしたかを確認した後)、実際に天翔記を起動して、 実際にそうなのか確認してみましょう。
確かにプレイヤーのターンで、フェイドアウト・インを挟んで「どこぞ」にカメラが移動した後、勝ち鬨と共に、ダイアログが表示されました。
又、真田幸隆を見てみたところ、「会見」のメッセージや「商人」とのやりとりなどで「マジかよ…最悪だぉ!!」ばかり言っています。
どうやら確かに機能しているようです。
その他
以上となります。
それでは次節より、「知るべきこと」について常に「練習」を挟みながら、細かく見てゆきましょう。